系統發生異常時,我們通常會經過幾個步驟:
發現異常 → 查看監控 → 找 Log → 判斷問題 → 處理
這些流程本身沒有什麼問題,但真正花時間的地方,常常是在「把資訊找齊」。
例如 CPU 突然升高,我們可能還要繼續確認 Memory、Disk、Process、Service,甚至再去翻當下的 Log,才能慢慢判斷發生什麼事情。
所以這次要做的平台,我希望先把這些資訊串起來。
先決定第一版要做到什麼
因為只有 30 天,我不打算一開始就做得很複雜。
第一版先完成四件事情:
可以看到主機狀態
主機異常時可以產生告警
把異常資訊整理成一筆事件
讓 AI 協助整理可能原因與排查方向
換句話說,第一版的流程會像這樣:
Server
↓
監控主機狀態
↓
發現異常
↓
產生告警
↓
整理監控資訊與 Log
↓
AI 協助分析
這就是目前整個專案最核心的流程。
架構先簡單畫出來
目前預計會使用幾個主要元件:
┌──────────────┐
│ Server │
└──────┬───────┘
│
Metrics
│
┌──────▼───────┐
│ Prometheus │
└──────┬───────┘
│
┌──────▼───────┐
│ Grafana │
└──────────────┘
Server / Alert / Log
│
▼
┌─────────────────┐
│ Python / FastAPI│
└────────┬────────┘
│
▼
┌─────────────────┐
│ Database │
└────────┬────────┘
│
▼
┌─────────────────┐
│ AI Analysis │
└─────────────────┘
目前先不用把這張圖想得太複雜。
每一個元件都有自己的工作。
Prometheus:負責收監控資料
Prometheus 主要負責收集主機的監控指標,例如:
CPU
Memory
Disk
Network
也就是先回答第一個問題:
現在主機的狀態怎麼樣?
Grafana:把監控資料顯示出來
有了監控數字之後,還需要一個比較方便查看的介面。
所以會使用 Grafana 做 Dashboard。
之後就可以直接看到:
Server01
CPU 35%
Memory 62%
Disk 71%
當主機數量增加時,也不需要一台一台登入查看。
Python / FastAPI:負責事件處理
這一層會是這次比較主要的實作部分。
假設今天收到一個:
Server01 CPU 超過 90%
系統不只是把「CPU 90%」丟給 AI。
而是先把相關資訊整理起來,例如:
Hostname:Server01
CPU:95%
Memory:72%
Disk:65%
時間:2026-08-29 15:30
事件:High CPU Usage
之後如果有 Log,也可以一起補進來。
整理完成後,再交給 AI 分析。
AI 先負責「協助判斷」
這次我不打算讓 AI 一開始就直接控制 Server。
例如 AI 發現服務異常,就自動 Restart Service。
這種功能雖然很有趣,但第一版先不做。
目前 AI 的角色比較單純:
把已經收集好的故障資訊整理成比較容易理解的內容。
例如:
可能原因:
某個 Process 持續占用大量 CPU。
建議排查:
最後還是由維運人員決定要怎麼處理。
我覺得這樣比較符合實際使用情境,也比較容易一步一步把系統完成。
先求能跑,再慢慢增加功能
目前第一版架構可以簡單整理成:
Prometheus → 監控
Grafana → Dashboard
Python → 事件整理
Database → 保存紀錄
AI → 協助分析
這次不追求一開始就做成完整的企業級平台。
先把:
監控 → 告警 → 整理資訊 → AI 分析
這條流程真的跑起來,再往後增加功能。
至少這樣 30 天結束的時候,不會只剩下一堆裝好的工具,而是真的有一套可以操作的東西。